package com.bootdo.mall.domain;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

import com.bootdo.common.annotation.ExcelTileName;
import com.bootdo.common.annotation.NotColumn;
import com.bootdo.common.fansheutils.FansheUtils;
import com.bootdo.common.fansheutils.JibenLei;
import com.bootdo.common.utils.DateUtils;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.haojiangbo.annotation.HapiFeild;


/**
 * 订单记录
 * 
 * @author haojiangbo
 * @email 2100272728@qq.com
 * @date 2019-10-25 16:19:11
 */
 @JsonInclude(JsonInclude.Include.NON_NULL)
public class MallOrder extends JibenLei {
	@NotColumn
	private static final long serialVersionUID = 1L;
	
	
	//
	 @NotColumn 	@HapiFeild("")
	private Long id;
	
	//订单号
	@ExcelTileName("流水号")
		@HapiFeild("流水号")
	private String orderNo;


	@HapiFeild("订单号")
	@ExcelTileName("订单号")
	private String orderId;

	
	//总价
		@HapiFeild("总价")
		@ExcelTileName("订单总价")
	private Double totalMoney;
	
	//支付价
		@HapiFeild("支付价")
		@ExcelTileName("订单支付价")
	private Double payMoney;
	
	//优惠价
		@HapiFeild("优惠价")
	private Double discountMoney;
	
	//总数
		@HapiFeild("总数")
		@ExcelTileName("商品总数")
	private Integer totalNum;
	
	//地址
		@HapiFeild("地址")
		@ExcelTileName("收货地址")
	private String address;
	
	//会员ID
		@HapiFeild("会员ID")
	private Long memberId;
	
	//会员名字
		@HapiFeild("会员名字")
		@ExcelTileName("会员姓名")
	private String memberName;
	
	//会员电话
		@HapiFeild("会员电话")
		@ExcelTileName("会员电话")
	private String memberMobile;

		//收货人电话
	private String linkMobile;
	
	//房间ID
		@HapiFeild("房间ID")
	private Long roomId;
	
	//房间名
		@HapiFeild("房间名")
	private String roomName;
	
	//酒店ID
		@HapiFeild("酒店ID")
	private Long hotelId;
	
	//酒店名
		@HapiFeild("酒店名")
	private String hotelName;
	
	//用户ID
		@HapiFeild("用户ID")
	private Long userId;
	
	//用户名
		@HapiFeild("用户名")
		@ExcelTileName("供应商")
	private String userName;
	
	//支付单号
		@HapiFeild("支付单号")
		@ExcelTileName("微信支付单号")
	private String payOrderNo;
	
	//类型  1是微信支付 2是积分支付
		@HapiFeild("类型")
		@ExcelTileName(value = "支付类型",change = "1=微信支付,2=积分支付")
	private Integer type;

	//支付状态 0是未支付  1是已支付 2是已发货 3是已确认发货 4是退款中 5是已退款 6是锁定状态
		@HapiFeild("支付状态")
		@ExcelTileName(value = "支付状态",change = "0=未支付,1=已支付,2=已发货,3=已收货,4=退款中,5=已退款,6=已锁定")
	private Integer payStatus;
	
	//酒店预订订单号
		@HapiFeild("酒店预订订单号")
	private String hotelOrderNo;
	
	//创建时间
		@HapiFeild("创建时间")
		@ExcelTileName("下单时间")
	private Date createTime;

		@NotColumn

	private List<MallOrderLog> mallOrderLogs;


	private String remark ;

	//邮费
	private Double freightMoney;


	private  Integer delFlag ;

	//订单超时时间
	private  Long  timeoutNumber;


	//订单确认收货时间
	private  Long  overOrderTime;

	@ExcelTileName("物流号")
	private String wuliuOrderNo;
	@ExcelTileName("物流名")
	private String wuliuName;

	//社区ID和名字
	private Long communityId;
	@ExcelTileName("小区名")
	private String communityName;

	@ExcelTileName("退款数量")
	private Integer tkNumber;
	@ExcelTileName("退款金额")
	private Double tkPrice;

	// 1代表未评价 2代表已评价
	private Integer commentFlag;

	/**
	 * 发货时间
	 */
	private Date fahuoTime;



    public MallOrder(){
    	this.tkNumber = 0;
    	this.tkPrice = 0d;
    	this.delFlag = 0;
    	this.remark = "";
    	this.createTime = new Date();
    	this.mallOrderLogs = new ArrayList<>();
    	this.freightMoney = 0d;
    	this.wuliuOrderNo = "";
    	this.wuliuName = "";
    	this.timeoutNumber = System.currentTimeMillis() + 1000  * 60 ;
    	this.commentFlag = 1;
    }

	public String getLinkMobile() {
		return linkMobile;
	}

	public void setLinkMobile(String linkMobile) {
		this.linkMobile = linkMobile;
	}

	public Date getFahuoTime() {
		return fahuoTime;
	}

	public void setFahuoTime(Date fahuoTime) {
		this.fahuoTime = fahuoTime;
	}

	public Integer getTkNumber() {
		return tkNumber;
	}

	public void setTkNumber(Integer tkNumber) {
		this.tkNumber = tkNumber;
	}

	public Double getTkPrice() {
		return tkPrice;
	}

	public void setTkPrice(Double tkPrice) {
		this.tkPrice = tkPrice;
	}

	public Long getCommunityId() {
		return communityId;
	}

	public void setCommunityId(Long communityId) {
		this.communityId = communityId;
	}

	public String getCommunityName() {
		return communityName;
	}

	public void setCommunityName(String communityName) {
		this.communityName = communityName;
	}

	public String getWuliuOrderNo() {
		return wuliuOrderNo;
	}

	public void setWuliuOrderNo(String wuliuOrderNo) {
		this.wuliuOrderNo = wuliuOrderNo;
	}

	public String getWuliuName() {
		return wuliuName;
	}

	public void setWuliuName(String wuliuName) {
		this.wuliuName = wuliuName;
	}

	public Long getTimeoutNumber() {
		return timeoutNumber;
	}

	public void setTimeoutNumber(Long timeoutNumber) {
		this.timeoutNumber = timeoutNumber;
	}

	public Long getOverOrderTime() {
		return overOrderTime;
	}

	public void setOverOrderTime(Long overOrderTime) {
		this.overOrderTime = overOrderTime;
	}

	public Integer getDelFlag() {
		return delFlag;
	}

	public void setDelFlag(Integer delFlag) {
		this.delFlag = delFlag;
	}

	public Double getFreightMoney() {
		return freightMoney;
	}

	public void setFreightMoney(Double freightMoney) {
		this.freightMoney = freightMoney;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public List<MallOrderLog> getMallOrderLogs() {
		return mallOrderLogs;
	}

	public void setMallOrderLogs(List<MallOrderLog> mallOrderLogs) {
		this.mallOrderLogs = mallOrderLogs;
	}

	public String getOrderId() {
		return orderId;
	}

	public void setOrderId(String orderId) {
		this.orderId = orderId;
	}

	/**
	 * 设置：
	 */
	public void setId(Long id) {
		this.id = id;
	}
	/**
	 * 获取：
	 */
	public Long getId() {
		return id;
	}
	/**
	 * 设置：订单号
	 */
	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}
	/**
	 * 获取：订单号
	 */
	public String getOrderNo() {
		return orderNo;
	}
	/**
	 * 设置：总价
	 */
	public void setTotalMoney(Double totalMoney) {
		this.totalMoney = totalMoney;
	}
	/**
	 * 获取：总价
	 */
	public Double getTotalMoney() {
		return totalMoney;
	}
	/**
	 * 设置：支付价
	 */
	public void setPayMoney(Double payMoney) {
		this.payMoney = payMoney;
	}
	/**
	 * 获取：支付价
	 */
	public Double getPayMoney() {
		return payMoney;
	}
	/**
	 * 设置：优惠价
	 */
	public void setDiscountMoney(Double discountMoney) {
		this.discountMoney = discountMoney;
	}
	/**
	 * 获取：优惠价
	 */
	public Double getDiscountMoney() {
		return discountMoney;
	}
	/**
	 * 设置：总数
	 */
	public void setTotalNum(Integer totalNum) {
		this.totalNum = totalNum;
	}
	/**
	 * 获取：总数
	 */
	public Integer getTotalNum() {
		return totalNum;
	}
	/**
	 * 设置：地址
	 */
	public void setAddress(String address) {
		this.address = address;
	}
	/**
	 * 获取：地址
	 */
	public String getAddress() {
		return address;
	}
	/**
	 * 设置：会员ID
	 */
	public void setMemberId(Long memberId) {
		this.memberId = memberId;
	}
	/**
	 * 获取：会员ID
	 */
	public Long getMemberId() {
		return memberId;
	}
	/**
	 * 设置：会员名字
	 */
	public void setMemberName(String memberName) {
		this.memberName = memberName;
	}
	/**
	 * 获取：会员名字
	 */
	public String getMemberName() {
		return memberName;
	}
	/**
	 * 设置：会员电话
	 */
	public void setMemberMobile(String memberMobile) {
		this.memberMobile = memberMobile;
	}
	/**
	 * 获取：会员电话
	 */
	public String getMemberMobile() {
		return memberMobile;
	}
	/**
	 * 设置：房间ID
	 */
	public void setRoomId(Long roomId) {
		this.roomId = roomId;
	}
	/**
	 * 获取：房间ID
	 */
	public Long getRoomId() {
		return roomId;
	}
	/**
	 * 设置：房间名
	 */
	public void setRoomName(String roomName) {
		this.roomName = roomName;
	}
	/**
	 * 获取：房间名
	 */
	public String getRoomName() {
		return roomName;
	}
	/**
	 * 设置：酒店ID
	 */
	public void setHotelId(Long hotelId) {
		this.hotelId = hotelId;
	}
	/**
	 * 获取：酒店ID
	 */
	public Long getHotelId() {
		return hotelId;
	}
	/**
	 * 设置：酒店名
	 */
	public void setHotelName(String hotelName) {
		this.hotelName = hotelName;
	}
	/**
	 * 获取：酒店名
	 */
	public String getHotelName() {
		return hotelName;
	}
	/**
	 * 设置：用户ID
	 */
	public void setUserId(Long userId) {
		this.userId = userId;
	}
	/**
	 * 获取：用户ID
	 */
	public Long getUserId() {
		return userId;
	}
	/**
	 * 设置：用户名
	 */
	public void setUserName(String userName) {
		this.userName = userName;
	}
	/**
	 * 获取：用户名
	 */
	public String getUserName() {
		return userName;
	}
	/**
	 * 设置：支付单号
	 */
	public void setPayOrderNo(String payOrderNo) {
		this.payOrderNo = payOrderNo;
	}
	/**
	 * 获取：支付单号
	 */
	public String getPayOrderNo() {
		return payOrderNo;
	}
	/**
	 * 设置：类型
	 */
	public void setType(Integer type) {
		this.type = type;
	}
	/**
	 * 获取：类型
	 */
	public Integer getType() {
		return type;
	}
	/**
	 * 设置：支付状态
	 */
	public void setPayStatus(Integer payStatus) {
		this.payStatus = payStatus;
	}
	/**
	 * 获取：支付状态
	 */
	public Integer getPayStatus() {
		return payStatus;
	}
	/**
	 * 设置：酒店预订订单号
	 */
	public void setHotelOrderNo(String hotelOrderNo) {
		this.hotelOrderNo = hotelOrderNo;
	}
	/**
	 * 获取：酒店预订订单号
	 */
	public String getHotelOrderNo() {
		return hotelOrderNo;
	}
	/**
	 * 设置：创建时间
	 */
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	/**
	 * 获取：创建时间
	 */
	public Date getCreateTime() {
		return createTime;
	}

	public Integer getCommentFlag() {
		return commentFlag;
	}

	public void setCommentFlag(Integer commentFlag) {
		this.commentFlag = commentFlag;
	}

	@Override
	@JsonIgnore
	public List<HashMap<String, Object>> getFields() {
		// TODO Auto-generated method stub
		return FansheUtils.getFieldList(this);
	}


}
